package ttOrder.service;

import java.util.ArrayList;

import java.util.List;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import ttOrder.dao.DinnertableMapper;
import ttOrder.model.Dinnertable;
import ttOrder.vo.DinnertableVO;

@Transactional
@Service("dinnertableService")
public class DinnertableServiceImpl implements IDinnertableService {

	@Autowired
	public DinnertableMapper dinnertableDAO;
	

	//查询全部餐桌
	@Override
	public List<DinnertableVO> findAllDinnertable() {
		List<Dinnertable> list=dinnertableDAO.selectAll();
		if(list != null){
			DinnertableVO vo=null;
			List<DinnertableVO> resultList = new ArrayList<DinnertableVO>();
			for(Dinnertable dinnertable : list){
				vo=new DinnertableVO();
				BeanUtils.copyProperties(dinnertable, vo);
				resultList.add(vo);
			}
			return resultList;
		}
		return null;
	}

	//查询全部空闲餐桌
	@Override
	public List<DinnertableVO> showAllFreeTable() {
		List<Dinnertable> list=dinnertableDAO.selectAllFreeTable();
		if(list !=null){
			DinnertableVO vo=null;
			List<DinnertableVO> resultList=new ArrayList<DinnertableVO>();
			for(Dinnertable dinnertable : list){
				vo=new DinnertableVO();
				BeanUtils.copyProperties(dinnertable, vo);
				resultList.add(vo);
			}
			return resultList;
		}
		return null;
	}
	
	
	//根据Id查询餐桌
	@Override
	public DinnertableVO findDinnertableById(Integer id) {
		Dinnertable dinnertable=dinnertableDAO.selectById(id);
		if(dinnertable !=null){
			DinnertableVO dinnertableVO=new DinnertableVO();
			BeanUtils.copyProperties(dinnertable, dinnertableVO);
			return dinnertableVO;
		}
		return null;
	}

	//新增餐桌
	@Override
	public void insertDinnertable(DinnertableVO dinnertableVO) {
		Dinnertable dinnertable=new Dinnertable();
		BeanUtils.copyProperties(dinnertableVO, dinnertable);
		dinnertableDAO.insert(dinnertable);
		
	}

	//修改餐桌
	@Override
	public void updateDinnertable(DinnertableVO dinnertableVO) {
		Dinnertable dinnertable=new Dinnertable();
		BeanUtils.copyProperties(dinnertableVO, dinnertable);
		dinnertableDAO.update(dinnertable);
		
	}

	//删除餐桌
	@Override
	public void deleteDinnertable(Integer id) {
		dinnertableDAO.deleteById(id);
		
	}

	//根据使用状态查询餐桌
	@Override
	public List<DinnertableVO> showBytableStatus(Integer tableStatus) {
		List<Dinnertable> list=dinnertableDAO.selectByTableStatus(tableStatus);
		if(list != null){
			DinnertableVO vo=null;
			List<DinnertableVO> resultList = new ArrayList<DinnertableVO>();
			for(Dinnertable dinnertable : list){
				vo=new DinnertableVO();
				BeanUtils.copyProperties(dinnertable, vo);
				resultList.add(vo);
			}
			return resultList;
		}
		return null;
	}

	//用户选择某空闲餐桌后让该餐桌状态改为已满位
	@Override
	public void editByTableId(Integer tableId) {
		Dinnertable dinnertable = new Dinnertable();
		dinnertable.setTableId(tableId);
		java.util.Date date=new java.util.Date();
		java.sql.Date sqldate=new java.sql.Date(date.getTime());	
		dinnertable.setOrderDate(sqldate);
		dinnertableDAO.editByTableId(dinnertable);		
	}

	

}
